package edu.columbia.aicheckers.model;

import java.util.Set;

/*8
 * The interface for the methods all BoardStates should have
 */
public interface IBoardState {
	
	public Checker getChecker(int position);

	public boolean isEmpty(int i);

	public Color getColor(int i);

	public boolean isColor(int i, Color color);

	public Set<Move> getAvailableMoves(Color color);
	
	public Set<Move> getAvailableMovesForPiece(Checker checker);
	
	public IBoardState simulateMove(Move move);

	public boolean isOpponentColor(int skipped, Checker checker);

	public Color getCurrentPly();
	
	public int getNumCheckers(Color color);
}
